home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / faqs / faq / modula-2-faq < prev    next >
Text File  |  1995-07-25  |  19KB  |  540 lines

  1. Subject: comp.lang.modula2: Answers to Common Questions  -  v1.10 94.11.17
  2. Newsgroups: comp.lang.modula2,comp.answers,news.answers
  3. From: randy@psg.com (Randy Bush)
  4. Date: 18 Nov 1994 05:03:06 -0800
  5.  
  6. Archive-name: Modula-2-faq
  7. Last-modified: 1994/11/17
  8. Version: 1.10
  9.  
  10. Originally-By: mgallo@iptech.com (Mike Gallo)
  11. Maintained-By: randy@psg.com (Randy Bush)
  12.  
  13. Copyright 1992-4, M Gallo and R Bush.  All rights reserved.  May be
  14. distributed for free only in toto, including this notice.
  15.  
  16. Additions corrections solicited.  Commercials and commercial products are
  17. intentionally undermentioned.  Implementors are preferred to distributors.
  18.  
  19.  
  20. CONTENT
  21.  
  22. 1)  What is comp.lang.modula2?
  23. 2)  What is Modula-2?
  24. 3)  What about Modula-2 standardization?
  25. 4)  What are Oberon and Oberon-2?
  26. 5)  What about Modula-3, Object Oberon, and Seneca?
  27. 6)  Where can I find implementations of Modula-2?
  28. 7)  Where can I find implementations of Oberon[-2]?
  29. 8)  Where can I find interesting libraries and sources?
  30. 9)  Some popular FTP sites
  31.  
  32.  
  33. 1)  What is comp.lang.modula2?
  34.  
  35. comp.lang.modula2 is a forum for the discussion of the Modula-2 programming
  36. language and related topics.  Prominent "related topics" have been the Oberon
  37. languages, Modula-3, the new ISO Modula-derived languages, etc.  The newsgroup
  38. is gated to the FidoNet echo conference MODULA-2.
  39.  
  40. Folk with only Internet E-Mail access can participate in the discussion by
  41. joining the INFO-M2 mailing list.  To do this, send an E-Mail message to
  42. listserv@ucf1vm.cc.ucf.edu, with the following in the message body:
  43.     subscribe info-M2 yourFirstname yourLastName
  44. This server also has a very large archive of previous messages.
  45.  
  46. 2)  What is Modula-2?
  47.  
  48. Modula-2 is a programming language designed by Niklaus Wirth of Pascal fame.
  49. Among other things, it features strong typing,modules, a rich variety of data
  50. types, a powerful set of control statements, procedure types, opaque types, and
  51. coroutines.
  52.  
  53.  
  54. 3)  What about Modula-2 standardization?
  55.  
  56. There is no standard for the Modula-2 language or library beyond Niklaus
  57. Wirth's classic text, "Programming in Modula-2".  There is an ISO committee,
  58. ISO/JTC1/SC22/WG13, which has circulated a number of drafts which have varied
  59. between editions.  The current edition is ISO/IEC DIS 10514:1994, August 1994.
  60.  
  61. To find out what's happening with standardization, contact the chair of WG13,
  62. Mark Woodman, m.woodman@open.ac.uk.
  63.  
  64.  
  65. 4)  What are Oberon and Oberon-2?
  66.  
  67. The Oberon language was a part of Wirth's Oberon operating system.  Oberon is
  68. the successor to Modula-2 by its original designer,Niklaus Wirth of ETH,
  69. Zurich.  In brief, it removes variant records, opaque types, enumerations,
  70. subranges, the CARDINAL type, local modules, automatic qualifications, general
  71. indexing, the FOR and WITH statements, and even the notion of a program or
  72. main module.  Oberon adds type extension (inheritance) and, in its purest
  73. form, automatic garbage collection.
  74.  
  75. Oberon-2 is Oberon with a small set of extensions by H. Moessenboeck, also of
  76. ETH, Zurich.  These extensions are type-bound procedures (methods), read-only
  77. export, open array variables, a WITH statement with variants, and the
  78. reintroduction of the FOR loop.
  79.  
  80. More detailed information can be found in "Software: Practice and Experience"
  81. (July 1988, September 1989) and by anonymous ftp from the host
  82. neptune.inf.ethz.ch:/Oberon/Docu.
  83.  
  84. "Project Oberon, The Design of an Operating System and Compiler"
  85. N. Wirth and J. Gutknecht
  86. ACM Press and Addison-Weseley Publishing Company, 1992
  87. ISBN 0-201-54428-8 
  88. neptune.inf.ethz.ch (129.132.101.33)
  89. in ~ftp/Oberon/Examples/ProjectOberon.tar.Z
  90. File ~ftp/Oberon/Examples/readme.PO gives some further information.
  91.  
  92. "Programming in Oberon", Reiser & Wirth, ACM Press, 320 pgs, 1992.
  93.  
  94. "The Programming Language Oberon-2", Moessenboeck & Wirth, _Structured
  95. Programming_, Vol. 12, No. 4, pp. 179-195, 1991.
  96.  
  97.  
  98. 5)  What about Modula-3, Object Oberon, and Seneca?
  99.  
  100. Modula-3 is an interesting language designed at DEC Software Research Center,
  101. also as a successor to Modula-2.  Unless there is a specific question about
  102. how it relates to Modula-2 or Oberon, posts about Modula-3 would be better
  103. directed to Comp.lang.modula3.
  104.  
  105. Object Oberon is an Oberon variant designed by H.  Moessenboeck and J. Templ
  106. of ETH, Zurich.  It eventually evolved into Oberon-2.
  107.  
  108. Seneca is an Oberon variant focusing on numerical applications and is by R.
  109. Griesemer of ETH, Zurich. It is still under development.
  110.  
  111.  
  112. 6)  Where can I find (preferably free) implementations of Modula-2?
  113.  
  114. While there have been several implementations of Modula-2, they are not as
  115. numerous nor as easy to find as, for example, C.  Some implementations are
  116. listed below.  These are merely some commonly used implementations, and should
  117. not be taken as a recommendation of any of the following products.  Only
  118. implementors are listed, not distribuors.  Free or shareware implementations
  119. receive preferential treatment, as they encourage the new and/or experimental
  120. Modulan.
  121.  
  122. For MS-DOS:
  123.  
  124.      Fitted Software Tools
  125.      P.O. Box 867403
  126.      Plano, TX 75086
  127.      USA
  128.      ftp at ftp.psg.com:pub/modula-2/pc
  129.      FidoNet .REQuest from 1:105/6
  130.  
  131.      Gardens Point Modula-2
  132.      ftp at ftp.psg.com:pub/modula-2/pc
  133.  
  134.      Clarion Topspeed Modula-2
  135.      Clarion Software
  136.      150 East Sample Road
  137.      Pompano Beach, FL  33064
  138.      USA
  139.  
  140.      Extasy Modula-2 (demo version)
  141.      oberon.meakins.mcgill.ca:/Multiscope Modula-2
  142.      Multiscope, Inc.
  143.      1235 Pear Ave.
  144.      Mountain View, CA  94043
  145.      USA
  146.      (415) 968-4892
  147.  
  148.      Stony Brook Software
  149.      187 East Wilbur, Suite 9
  150.      Thousand Oaks, CA 91360
  151.      USA
  152.      Tel: +1 (805) 496 5837 (tech Support)
  153.      Fax; +1 (805) 496 7429
  154.  
  155. Sun-4:
  156.  
  157.     The only free Sun4-implementation I've heard of is that of Metrowerks
  158.     (ftp 132.208.12.5, login metro, passwd release4.0) but I haven't tested
  159.     it yet.
  160.     -- borchert@mathematik.uni-ulm.de
  161.  
  162.     While Sun (more properly SunPro) has discontinued direct support of M2,
  163.     responsibility for it has been transferred to Edinburgh Portable
  164.     Compilers Ltd (see below).
  165.  
  166. Sun-3:
  167.  
  168.     From: borchert@MATHEMATIK.UNI-ULM.DE (Andreas Borchert)
  169.  
  170.     Ulm's Modula-2 system for SUN 3 is now available via anonymous ftp from
  171.     titania.mathematik.uni-ulm.de (134.60.66.21). You'll find it in the
  172.     subdirectory pub/soft/modula/ulm/sun3.
  173.  
  174. Macintosh:
  175.  
  176.     MacMETH Modula-2 for the Mac
  177.     neptune.inf.ethz.ch:~/macmeth/*
  178.     ftp.psg.com:~/pub/.modula-2/macMETH/*
  179.  
  180.     p1 GmbH
  181.     Hogenbergstr. 20
  182.     W-80686 Munich 21
  183.     Germany
  184.     Tel   : +49(89)5461310
  185.     Fax   : +49(89)5802597
  186.     E-Mail: GER.XSE0109@AppleLink.Apple.COM (Elmar Henne)
  187.     (features Object oriented extensions which are compatible with Apple's
  188.      Object Pascal and MacApp)
  189.  
  190.     Metrowerks, Inc.
  191.     The Trimex Bldg, Rte 11
  192.     Mooers, NY 12958
  193.     USA
  194.     Tel  : (514) 458-2018
  195.     Email: achim@mips1.info.uqam.ca (Marcel Achim)
  196.     (Wirth's one-pass ported to MacOS, module size limited to 32k)
  197.  
  198. VMS:
  199.  
  200.     Florian Matthes
  201.     Fachbereich Informatik
  202.     Universitaet Hamburg      Tel. + (49) 40 4123 4144
  203.     Schlueterstrasse 70       Fax. + (49) 40 4123 6122
  204.     D-20146 Hamburg 13         e-mail: matthes@dbis1.informatik.uni-hamburg.de
  205.     Germany
  206.  
  207.     TERRA Datentechnik
  208.     Bahnhofstrasse 33
  209.     CH-8703 Erlenbach
  210.     Switzerland
  211.     (M2VMS (formerly Logitech's?) + distributor for others)
  212.     Phone: +41 1 910 35 55
  213.     Fax:   +41 1 910 19 92
  214.     BBS:   +41 1 910 35 31 (300 - 9600 baud, 8, N, 1)
  215.  
  216. Misc:
  217.  
  218.     A Modula-2 compiler for VAX BSD & ULTRIX and for MIPS/ULTRIX is available
  219.     via FTP from gatekeeper.dec.com:pub/DEC/Modula-2.
  220.  
  221.     2i Industrial Informatics GmbH
  222.     Haierweg 20e
  223.     D-79114 Freiburg
  224.     Germany
  225.     (MOCKA Modula-2 for DEC VAX(VMS&ULTRIX) & maybe others)
  226.     ( there is some doubt they are still active )
  227.  
  228.     A+L AG
  229.     D"aderiz 61
  230.     CH-2540 Grenchen
  231.     (From: hartmut@oberon.nbg.sub.org (Hartmut Goebel)
  232.     (distributes both a M2 and an Oberon-2 compiler for AmigaOS)
  233.  
  234.     Armadillo Computing
  235.     5225 Marymount Drive
  236.     Austin, Texas 78723 USA
  237.     512/926-0360
  238.     Internet: jolinger@bix.com
  239.     (M2 for Amiga)
  240.     (From: jolinger@bix.com)
  241.  
  242.     Associated Computer Experts b.v.
  243.     Van Eeghenstraat 100
  244.     Amsterdam 1071GL
  245.     Netherlands
  246.     (Modula-2 for 680x0)
  247.  
  248.     Edinburgh Portable Compilers, Ltd.
  249.     17 Alva Street
  250.     Edinburgh EH2 4PH
  251.     UK
  252.     upport@epc.ed.ac.uk  voice: +44 31 225 6262  fax: +44 31 225 6644
  253.     20 Victor Square
  254.     Scotts Valley
  255.     California 95066
  256.     info@epc.com  +1 408 438 1851
  257.     (SCO Unix V.[34], Motorola 88000 UNIX V.[34], SPARC UNIX & Solaris,
  258.     RS/6000 AIX)
  259.  
  260.     Gardens Point Modula-2
  261.     Prof. John Gough
  262.     Queensland University of Technology
  263.     Gardens Point Branch
  264.     2 George Street
  265.     GPO Box 2434
  266.     Brisbane, Queensland  4001
  267.     Australia
  268.     +61 7-864-2132 (voice)
  269.     +61 7-864-1801 (fax)
  270.     (for DOS and most UNIX workstations)
  271.  
  272.     The GMD Modula-2 Compiler MOCKA is available for
  273.         system       | operating system    |   processor         |
  274.         -------------+---------------------+---------------------+
  275.         SUN 4        | SUN OS              | SPARC               |
  276.         SUN 4        | Solaris2.x/SunOS 5.0| SPARC               |
  277.         DEC Station  | ULTRIX              | R3000, R2000 (MIPS) |
  278.         Silicon      | IRIX                | R3000, R2000 (MIPS) | *
  279.           Graphics   |                     |                     |
  280.         Sony NEWS    | News                | MC 68020 mit 68881  | *
  281.         SUN 3        | SUN OS              | MC 68020 mit 68881  |
  282.         PCS Cadmus   | UNIX                | MC 68020 mit 68881  | *
  283.         NeXT         | Mach/UNIX           | MC 68020 mit 68881  | *
  284.         HP 9000/300  | HPUX                | MC 68020 mit 68881  | *
  285.         HP 9000/700  | HPUX                | C back end          |
  286.         RS6000       | AIX                 | C back end          | *
  287.         VAX          | UNIX (BSD) / ULTRIX | VAX                 | *
  288.         PC           | Linux               | 80386               | +
  289.         PC           | 386BSD              | 80386               | +
  290.         Transputer   | Without own O.S. but| T800, T414          |
  291.                  | with access of UNIX |                     |
  292.                  | from a host computer|                     |
  293.         C-back end   | UNIX                | different           |
  294.         translates   |                     |                     |
  295.         M-2 To C     |                     |                     |
  296.     i44s10.ira.uka.de        in /pub/mocka/linux
  297.     sunsite.unc.edu        in /pub/Linux/Incoming
  298.     tsx-11.mit.edu        in /incoming
  299.  
  300.     Introl Corporation
  301.     9220 W. Howard Avenue     647 W. Virginia St.
  302.     Milwaukee, WI 53288       Milwaukee, WI 53204
  303.     U.S.A>
  304.     (Cross compiler for targets H630x, M680x, M680x0, NS32000)
  305.  
  306.     Jefferson Software
  307.     12416 N. 28th Dr. #18-236
  308.     Phoenix, AZ 85029-2434
  309.     U.S.A.
  310.     (Jefferson Modula-2 for Atari ST (and others?))
  311.  
  312.     Mandeno Granville Electronics Ltd.
  313.     128 Grange Rd.
  314.     Auckland 3
  315.     New Zealand.
  316.     ph +64 9 6300558
  317.     fax =64 9 6301720
  318.     (compiler available for the Intel 8051 family of Micro's)
  319.     (From: dekker@decus.org.nz)
  320.  
  321.     Masthaven Development Limited
  322.     East Suite, 511 Coldham Lane
  323.     Cambridge CB1 3LN
  324.     United Kingdom
  325.     (Modula-2 for 68000 UNIX)
  326.  
  327.     Megamax
  328.     1200 East Collins, Suite 214
  329.     Richardson, TX 75081
  330.     U.S.A.
  331.     (Modula-2 for Atari ST)
  332.  
  333.     ModulaWare GmbH
  334.     GraphicSystems & Modula-2 Software
  335.     Wilhelstrasse 17A
  336.     D-91054 Erlangen
  337.     Phone: 49-9131/208395
  338.     Fax:   49-9131/28205
  339.     e-mail: g_dotzel@ame.nbg.sub.org
  340.     (distributor for many platforms)
  341.  
  342.     Rowley Associates
  343.     32 Rowley
  344.     Cam, Dursley
  345.     Glos. GL11 5NT
  346.     United Kingdom
  347.     (Modula-2 for "most platforms")
  348.     (ROMable, realtime, ... specialties)
  349.  
  350.     Vail Silicon Tools Inc.
  351.     Box 165
  352.     Pompano Beach, FL 33069
  353.     U.S.A.
  354.     (cross-compiler (PC host) for 8051 controller)
  355.  
  356.     WATCOM
  357.     415 Phillip Street
  358.     Waterloo, Ontario  N2L 3X2
  359.     Canada
  360.     Tel.:  (519) 886-3700
  361.     FAX:   (519) 747-4971
  362.     BBS:   (519) 884-2103
  363.     Telex: 06-955458
  364.     email: tech@watcom.on.ca
  365.     (Modula-2 VM/SP CMS)
  366.  
  367. [ m2c, a Modula-2 to C translator kit ]
  368.  
  369.     From: sgccseh@citecuc.citec.oz.au (Stephen Hocking)
  370.  
  371.     It is in ftp.gmd.de:/gmd/cocktail/mtc.tar.Z where the bloke who wrote it
  372.     all (Josef Grosch) is based. You will also need reuse.tar.Z and
  373.     front.tar.Z from the same directory. For those interested in compilers,
  374.     that directory is a goldmine.
  375.  
  376.     Ross L Richardson <rlr@postoffice.utas.edu.au> comments:
  377.  
  378.     I believe mtc was originally written by M[atthias] Martin, as some kind
  379.     of Diploma project.
  380.  
  381. Modula-2*
  382.  
  383.     Modula-2* Compiler Available
  384.  
  385.     Modula-2* constructs allow for clear and portable parallel software
  386.     without intolerable loss of efficiency.  The following list contains
  387.     the main advances of Modula-2*:
  388.  
  389.     o The programming model of Modula-2* is a strict superset of data
  390.       parallelism.  It allows both synchronous and asynchronous parallel
  391.       programs.
  392.     o Modula-2* is problem-oriented in the sense that the programmer can
  393.       choose the degree of parallelism and mix the control mode (SIMD- or
  394.       MIMD-like) as needed by the intended algorithm.
  395.     o Parallelism may be nested to arbitrary depth.
  396.     o Procedures may be called from sequential or parallel contexts and can
  397.       themselves generate parallel activity without any restrictions.
  398.     o Most Modula-2* programs can be translated into efficient code for both
  399.       SIMD and MIMD architectures.
  400.  
  401.     I386  =  386/486/Pentium PC running BSDI/386 Unix (sequential)
  402.     KSRP  =  Kendall Square Research KSR-1/KSR-2 running KSR-OS (parallel)
  403.     KSRS  =  Kendall Square Research KSR-1/KSR-2 running KSR-OS (sequential)
  404.     LINX  =  386/486/Pentium PC running Linux (sequential)
  405.     MASP  =  MasPar MP-1/MP-2 with DECStation frontend running MP-Ultrix
  406.          (parallel)
  407.     MIPS  =  R3000/R4000 DECStation running Ultrix (sequential)
  408.     SUN3  =  680x0 Sun-3 running SunOS (sequential)
  409.     SUN4  =  SPARC Sun-4/SparcStation running SunOS (sequential)
  410.  
  411.     You can get the IPD Modula-2* distributions for all supported
  412.     architectures by anonymous ftp from "ftp.ira.uka.de" [129.13.10.90] in the
  413.     directory "pub/programming/modula2star".
  414.  
  415.  
  416. 7)  Where can I find implementations of Oberon(-2)?
  417.  
  418. To repeat, this should not be taken as a recommendation of any of the
  419. following products, but. . .
  420.  
  421. ETH, Zurich has released free implementations of the Oberon system.  These
  422. include Oberon compilers.  They are available by anonymous ftp at
  423. neptune.inf.ethz.ch:/Oberon/* or gatekeeper.dec.com:/pub/plan/oberon/*.
  424.  
  425. Oberon-M is an independently produced Oberon compiler for MS-DOS systems that
  426. can also be found at neptune and gatekeeper.
  427.  
  428. There is also a Modula-2/Oberon-2 to C translator available through
  429.     Real Time Associates Ltd.
  430.     Canning House
  431.     59 Canning Road
  432.     Croydon, Surrey  CRO 6QF
  433.     UK
  434.  
  435. From: thutt@THAMA1.APGEA.ARMY.MIL
  436.  
  437.     The source to the Oberon compilers is not publicly available however, you
  438.     can license the front end and/or the back end for the Oberon-2 compiler
  439.     from ETH for 1000 Swiss Francs.  The license agreement does prohibits you
  440.     from redistributing the source, but you are free to do whatever you want
  441.     with any derivative product, provided you give ETH credit for the original
  442.     compiler source.
  443.  
  444.     You are also required to make ETH aware of your product, and provide the
  445.     product to them should they ask.  It does not state if it needs to be
  446.     source or executable code, however.
  447.  
  448.     It is a pretty loose agreement, but not so loose to hinder ETH.  1000 SFr
  449.     is about 757 dollars, as of last month.
  450.  
  451. AmigaOberon:
  452.   Fridtjof Siebert
  453.   fridi@amokst.stgt.sub.org
  454.  
  455.  
  456. 8) Where can I find interesting libraries and sources?
  457.  
  458. The FTP sites listed in 9.
  459.  
  460. Amiga Sources:
  461.  
  462.     From: htgoebel@cip.informatik.uni-erlangen.de (hartmut Goebel)
  463.     
  464.     At ftp.uni-paderborn.de in /amiga/amok you can get all the disks from the
  465.     AMOK series via anonymous ftp.  Please download only 18.00 - 8.00 h
  466.     (MET), cause the transmitt rate is low. Perhaps someone call move the
  467.     disks to overseas, too.
  468.  
  469.     On this series there are several modules both for Oberon and modula2 and
  470.     executable programms (most with source).  While the Programms almost run
  471.     only on the Amiga, the modules may be interesting for other systems, too.
  472.  
  473.     There are modules for many diverent usages, not only generic.
  474.  
  475. MAS Modula-2 Algebra System
  476.  
  477.     From: kredel@unipas.fmi.uni-passau.de (Heinz Kredel)
  478.  
  479.     MAS is an experimental computer algebra system combining imperative
  480.     programming facilities with algebraic specification capabilities for
  481.     design and study of algebraic algorithms.  MAS views mathematics in the
  482.     sense of universal algebra and model theory and is in some parts
  483.     influenced by category theory.
  484.  
  485.     MAS (0.3x and 06.x) is available on electronic networks (internet) via
  486.     anonymous ftp from:  alice.fmi.uni-passau.de = 123.231.10.1
  487.  
  488. Repertoire and other software component libraries
  489.     PMI
  490.     P.O. Box 8402                 3279 N. Nicolet Drive
  491.     Green Bay, WI 54308-8402      Green Bay, WI 54311
  492.     U.S.A.
  493.  
  494.     PMOS is a collection of modules to allow you to write multitasking
  495.     programs.  It runs on IBM-PC compatible computers.  It has been
  496.     compiled with TopSpeed Modula-2.  Porting to other machines and
  497.     compilers is possible, but should probably be tackled only by
  498.     experienced programmers.
  499.     
  500. PMOS - a multitasking library (ftp.psg.com)
  501.  
  502.     The package is potentially of interest to
  503.      - people who want to write real-time applications for the IBM-PC;
  504.      - Modula-2 programmers who want a collection of utility modules;
  505.      - students of operating systems who want to look at real code.
  506.     Full source is included.
  507.     
  508.     The PMOS package includes
  509.      - a kernel which contains a CreateTask procedure, plus various
  510.        routines to support the multitasking.
  511.      - intertask communication via semaphores, mailboxes, queues;
  512.        or you can add your own mechanisms.
  513.      - device drivers for keyboard, printer, A/D, floppy disk, hard
  514.        disk, hardware timer.  (No mouse as yet.)
  515.      - a file system compatible with the MS-DOS FAT system; or you
  516.        can choose to use standard library file operations.
  517.      - screen windows in both text and graphics modes.  (The text-mode
  518.        support is very complete; graphics modes are less fully
  519.        supported so far.)
  520.      - screen utilities such as menus, on-screen editing of defined
  521.        data fields, multiple virtual screens.
  522.      - miscellaneous modules: random numbers, some data structures,
  523.        sorting, etc.
  524.  
  525.  
  526. 9) Some Popular FTP sites:
  527.  
  528.     neptune.inf.ethz.ch
  529.     gatekeeper.dec.com
  530.     ftp.psg.com
  531.     titania.mathematik.uni-ulm.de
  532.     i44s10.ira.uka.de
  533.  
  534. -30-
  535.  
  536.  
  537. -- 
  538. randy@psg.com   ...!uunet!m2xenix!randy
  539.  
  540.